﻿#ifndef PST_TEXTEXPANDER_H
#define PST_TEXTEXPANDER_H

#include <QObject>
#include <vtkSmartPointer.h>

class vtkTable;

namespace pst
{
    class TextExpander : public QObject
    {
        Q_OBJECT

    public:
        explicit TextExpander(QObject* parent = nullptr);
        ~TextExpander();

        void setInputTable(vtkTable* table);
        vtkTable* getInputTable();

        bool update(); //要改

        vtkTable* getExpandedTable();

        // json中的文件类型result_type
        void setFileDealType(int type);
        int getFileDealType();

        // 0为标量，1为实部虚部， 2为幅度相位
        void setFileComponentType(int type);
        int getFileComponentType();

    private:
        void addComponentTypeTotalColumn(); // 添加总量列, 用于实部，虚部，幅度，相位这种分类形式的数据
        void addScalarTypeTotalColumn(); // 添加总量列, 用于标量这种分类形式的数据 ，本身给的就是ex ey ez这种形式的数据
    private:
        vtkTable* m_originalTable; // 原始表格
        vtkTable* m_expandedTable; // 扩展表格

        // json中的文件类型result_type
        // 是文件的类型
        // 体电场分布（0）面电场分布（1） 点电场（探针点）（2） 表面场分布（3）表面电流密度（4） 空间电势分布（5）
        // 表面电势分布（6） 方向图（7）  S参数（8）  驻波比（9）  电压（10）
        // 电流（11） 附着点路径（14）   面电势分布（15） 干扰关联矩阵（12）  SAR（13）
        int m_fileDealType;
        // 0为标量，1为实部虚部， 2为幅度相位
        int m_fileComponentType;
    };
}

#endif
